package site.isscloud.project.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import site.isscloud.common.annotation.Excel;
import site.isscloud.common.core.domain.BaseEntity;
import site.isscloud.project.domain.PjAlarmEvent;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 楼栋告警视图对象
 */
public class BuildingEventVo extends BaseEntity {

    /** 位置ID */
    private Long locationId;

    /** 位置编码 */
    @Excel(name = "位置编码")
    private String lcCode;

    /** 位置名称 */
    @Excel(name = "位置名称")
    private String lcName;

    /** 设备号 */
    @Excel(name = "设备号")
    private String deviceNo;

    /** 通道 - 对应数据库中的 channel_no */
    @Excel(name = "通道")
    private Integer chanel;

    /** 最高报警温度 */
    @Excel(name = "最高报警温度")
    private BigDecimal maxTemperature;

    /** 最低报警温度 */
    @Excel(name = "最低报警温度")
    private BigDecimal minTemperature;

    /** 事件数量 */
    @Excel(name = "事件数量")
    private Integer eventCount;

    /** 状态 */
    @Excel(name = "状态")
    private Integer status;

    /** 最新时间 */
    @Excel(name = "最新时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date latestTime;

    /** 楼栋名称 */
    private String buildingName;

    /** 单元名称 */
    private String unitName;

    /** 电梯名称 */
    private String elevatorName;

    /** 楼层名称 */
    private String floorName;

    /** 标记开始位置 */
    private Integer markerStart;

    /** 标记结束位置 */
    private Integer markerEnd;

    /** 子事件列表 */
    private List<PjAlarmEvent> eventDetails;

    // Getters and Setters
    public Long getLocationId() { return locationId; }
    public void setLocationId(Long locationId) { this.locationId = locationId; }

    public String getLcCode() { return lcCode; }
    public void setLcCode(String lcCode) { this.lcCode = lcCode; }

    public String getLcName() { return lcName; }
    public void setLcName(String lcName) { this.lcName = lcName; }

    public String getDeviceNo() { return deviceNo; }
    public void setDeviceNo(String deviceNo) { this.deviceNo = deviceNo; }

    public Integer getChanel() { return chanel; }
    public void setChanel(Integer chanel) { this.chanel = chanel; }

    public BigDecimal getMaxTemperature() { return maxTemperature; }
    public void setMaxTemperature(BigDecimal maxTemperature) { this.maxTemperature = maxTemperature; }

    public BigDecimal getMinTemperature() { return minTemperature; }
    public void setMinTemperature(BigDecimal minTemperature) { this.minTemperature = minTemperature; }

    public Integer getEventCount() { return eventCount; }
    public void setEventCount(Integer eventCount) { this.eventCount = eventCount; }

    public Integer getStatus() { return status; }
    public void setStatus(Integer status) { this.status = status; }

    public Date getLatestTime() { return latestTime; }
    public void setLatestTime(Date latestTime) { this.latestTime = latestTime; }

    public String getBuildingName() { return buildingName; }
    public void setBuildingName(String buildingName) { this.buildingName = buildingName; }

    public String getUnitName() { return unitName; }
    public void setUnitName(String unitName) { this.unitName = unitName; }

    public String getElevatorName() { return elevatorName; }
    public void setElevatorName(String elevatorName) { this.elevatorName = elevatorName; }

    public String getFloorName() { return floorName; }
    public void setFloorName(String floorName) { this.floorName = floorName; }

    public Integer getMarkerStart() { return markerStart; }
    public void setMarkerStart(Integer markerStart) { this.markerStart = markerStart; }

    public Integer getMarkerEnd() { return markerEnd; }
    public void setMarkerEnd(Integer markerEnd) { this.markerEnd = markerEnd; }

    public List<PjAlarmEvent> getEventDetails() { return eventDetails; }
    public void setEventDetails(List<PjAlarmEvent> eventDetails) { this.eventDetails = eventDetails; }
}